package com.artevivo.services;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.artevivo.dao.EstiloPorEspecialidadDAO;
import com.artevivo.entidades.Especialidad;
import com.artevivo.entidades.Estilo;
import com.artevivo.entidades.EstiloPorEspecialidad;

@Service
public class EstiloPorEspecialidadService {
	
	@Resource
    private EstiloPorEspecialidadDAO estiloPorEspecialidadDAO;
	
	@Resource
    private EstiloService estiloService;
	
	@Resource
    private EspecialidadService especialidadService;
	
	public List<Estilo> obtenerEstilosPorEspecialidad(Especialidad especialidad){
		return estiloPorEspecialidadDAO.findEstilosByEspecialidad(especialidad);
	}
	
	public List<Especialidad> obtenerEspecialidadesPorEstilo(Estilo estilo){
		return estiloPorEspecialidadDAO.findEspecialidadesPorEstilo(estilo);
	}
	
	public void anyadirEstiloAEspecialidad(Estilo estilo, Especialidad especialidad){
		try {
			if(estiloService.obtenerEstiloPorNombre(estilo.getNombre()) == null){
				estiloService.guardarEstilo(estilo.getNombre());	
			}
			if(especialidadService.obtenerEspecialidadPorNombre(especialidad.getNombre()) == null){
				especialidadService.guardarEspecialidad(especialidad.getNombre(), especialidad.getTipo());
			}
			List<Estilo> estilos = estiloPorEspecialidadDAO.findEstilosByEspecialidad(especialidad);
			if(!estilos.contains(estilo)){
				EstiloPorEspecialidad estEsp = new EstiloPorEspecialidad(estilo, especialidad);
				estiloPorEspecialidadDAO.insert(estEsp);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}
